
package com.xbongbong.saas.model;

import com.xbongbong.paas.toolbox.wrap.IModel;
import com.xbongbong.saas.domain.entity.TagEntity;

import java.util.List;
import java.util.Map;


public interface TagModel extends IModel<TagEntity> {

    @Override
    Integer insert(TagEntity entity);

    @Override
    Integer update(TagEntity entity);

    TagEntity getByKey(Integer key, String corpid);

    @Override
    List<TagEntity> findEntitys(Map<String, Object> param);

    @Override
    Integer getEntitysCount(Map<String, Object> param);

    /**
     * 查询退回公海池的标签
     *
     * @return TagEntity 退回公海池的标签
     */
    TagEntity findReturnPublicTag(Integer code);

    /**
     * 查询归档的标签
     *
     * @return TagEntity 归档的标签
     */
    TagEntity findArchivedTag();

    /**
     * 根据标签类型查询系统级标签（corpid=0）
     *
     * @return TagEntity 标签
     */
    TagEntity getTagByTagType(Integer tagType);

    /**
     * 查询该公司的所有标签（包括系统级标签）
     *
     * @return List<TagEntity> 标签队列
     */
    List<TagEntity> getTags(String corpid);

    /**
     * 查询该公司的所有标签（包括系统级标签）
     *
     * @return Map<Integer, TagEntity> 标签Map，以Tag的Id为Key
     */
    Map<Integer, TagEntity> getTagsMap(String corpid);
}

